<template>
  <div id="root">
  <div class="todo-container">
    <div class="todo-wrap">
      <!-- {{this.todoList[0].done}} -->
      <Header :NewaddHandle='NewaddHandle'/>
      <List :todoList='todoList' :checkHancle='checkHancle' :deleteHandle='deleteHandle'/>
      <Footer :todoList='todoList' :AllcheckedHandle='AllcheckedHandle' :AlldeleteHandle='AlldeleteHandle'/>
     
     
      
    </div>
  </div>
</div>
</template>

<script>


import Header from './components/Header'
import List from './components/List'
import Footer from './components/Footer'
export default {
name:'App',
components:{
  Header,
  List,
  Footer
},
data(){
  return{
    todoList:[]
     
   
  }
},
methods: {
  // 1.初始化页面
  NewaddHandle(Newtodo){
    this.todoList.unshift(Newtodo)
  },
  // 2.单个check修改
  checkHancle(id){
    this.todoList=this.todoList.map((item)=>{
      return item.id===id?{...item,done:!item.done}:item
    })
  },
  // 3.单个删除
  deleteHandle(id){
    this.todoList=this.todoList.filter((item)=> item.id!==id)

   
  },
  // 4.全选
  AllcheckedHandle(value){
    this.todoList=this.todoList.map((item)=>({...item,done:value}))
  },
  // 5.删除所有已完成的
  AlldeleteHandle(){
    this.todoList=this.todoList.filter((item)=>(!item.done))
  }
},
mounted() {
  this.todoList=JSON.parse(localStorage.getItem('todoList')||'[]')
},
watch:{
  todoList:{
    handler(){
      localStorage.setItem('todoList',JSON.stringify(this.todoList))
    }
  }
}
}
</script>

<style>
/*base*/
body {
  background: #fff;
}

.btn {
  display: inline-block;
  padding: 4px 12px;
  margin-bottom: 0;
  font-size: 14px;
  line-height: 20px;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  border-radius: 4px;
}

.btn-danger {
  color: #fff;
  background-color: #da4f49;
  border: 1px solid #bd362f;
}

.btn-danger:hover {
  color: #fff;
  background-color: #bd362f;
}

.btn:focus {
  outline: none;
}

.todo-container {
  width: 600px;
  margin: 0 auto;
}
.todo-container .todo-wrap {
  padding: 10px;
  border: 1px solid #ddd;
  border-radius: 5px;
}






</style>